package com.yixing.tech.wms.service;

import com.yixing.tech.common.base.BusinessException;
import com.yixing.tech.wms.param.ManualInParam;
import com.yixing.tech.wms.param.ManualOutParam;
import com.yixing.tech.wms.stock.out.callback.error.TaskErrorCallbackVO;
import com.yixing.tech.common.entity.WCSTaskCallbackVO;
import org.bson.Document;

import java.util.List;

/**
 * @author yixing tech
 * @since 1.0.0
 */
public interface ManualInOutStockService {


    boolean out(ManualOutParam param) throws BusinessException;

    boolean in(ManualInParam param) throws BusinessException;

    void handleCallback(String taskCode, String method, String locCode, String podCode);

    default void handleCallback(WCSTaskCallbackVO callbackVO){
        handleCallback(callbackVO.getTaskCode(), callbackVO.getMethod(), callbackVO.getCurrentPositionCode(), callbackVO.getPodCode());
    }

    Object handleErrorCallback(TaskErrorCallbackVO callbackVO) throws BusinessException;

    List<Document> list(ManualInParam param);

    boolean bind(String locationCode, String containerCode) throws BusinessException;

    Object detail(ManualInParam param) throws BusinessException;

    Object detailByContainerCode(String containerCode) throws BusinessException;

//    /**
//     * 分析导出
//     */
//    void analysisExport(HttpServletResponse response) throws BusinessException;
}
